package Test2;

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 首先读取 b.txt 文件中的每一行学生信息，并将其解析为 Student 对象，
 * 然后存储在 ArrayList 中。
 * 使用 Collections.sort 方法和一个自定义的 Comparator 对学生列表按照年龄进行排序。
 * 最后，使用 BufferedWriter 将排序后的学生信息写回 b.txt 文件。
 * 
 * */
public class StudentTest {
    public static void main(String[] args) throws Exception {
        String filePath = "D:\\Demo-Java\\java-demo-hbnu\\src\\Test2\\b.txt";
        List<Student> stu = new ArrayList<>();

//        读取学生信息
        try(BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            String line;
            while((line= br.readLine())!=null){
                String[] info = line.split("，");
//                将新创建的Student对象添加到students列表中。将字符串转换为整数info[1]
                stu.add(new Student(info[0],Integer.parseInt(info[1])));
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
       Collections.sort(stu,new Comparator<Student>() {
           @Override
           public int compare(Student o1, Student o2) {
               return Integer.compare(o1.getAge(),o2.getAge());
           }
       });
//        将排序后的学生集合写回文件
        try (
               BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))
                ){
            for (Student students : stu) {
                bw.write(students.toString());
                bw.newLine();
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
